import { createStore } from 'vuex'

export default createStore({
  // 初始状态
  state() {
    // 从 localStorage 获取数据，并返回初始状态
    const savedBlogItem = localStorage.getItem('blogItem')
    return {
      blogItem: savedBlogItem ? JSON.parse(savedBlogItem) : null
    }
  },
  // 内置的方法
  mutations: {
    SET_BLOG_ITEM(state, item) {
      state.blogItem = item
      // 保存数据到 localStorage
      localStorage.setItem('blogItem', JSON.stringify(item))
    },
  },
  // 暴露的方法
  actions: {
    async setBlogItem({ commit }, item) {
      commit('SET_BLOG_ITEM', item)
    }
  },
  getters: {
    blogItem: (state) => state.blogItem,
  }
})
